package ar.uba.fi.algo3.control;

import java.util.ArrayList;
import java.util.Iterator;

import ar.uba.fi.algo3.vista.VistaDisparo;

import fiuba.algo3.titiritero.modelo.GameLoop;
import fiuba.algo3.titiritero.modelo.ObservadorDeGameLoop;

public class ControladorDisparos implements ObservadorDeGameLoop{
        
	GameLoop gameLoop;
	protected ArrayList<VistaDisparo> vistaDisparos;
    
	public ControladorDisparos (GameLoop unGameLoop) {
                
		vistaDisparos = new ArrayList<VistaDisparo>();                
		gameLoop = unGameLoop;
	}
    
	@Override
	public void notificarCicloFinalizado() {
               
		Iterator<VistaDisparo> iteradorDeVistaDisparos = vistaDisparos.iterator();
        
		while (iteradorDeVistaDisparos.hasNext()) {

			VistaDisparo vistaDisparo = iteradorDeVistaDisparos.next();
            
			if ((vistaDisparo.getDisparo()).terminoSuTurno()) {

				gameLoop.remover(vistaDisparo);
                
				iteradorDeVistaDisparos.remove();
			}
		}
	}
       
	public void agregar(VistaDisparo vistaDisparo) {

		vistaDisparos.add(vistaDisparo);                
	}
}